// 创建Vuex中的store

import Vue from 'vue'
import Vuex from 'vuex';

Vue.use(Vuex);
// 创建actions，用于响应组件中的动作
const actions = {
    incrementOdd(context, value) {
        if (this.state.sum % 2 === 1) {
            context.commit('increment', value);
        }
    },
    incrementWait(context, value) {
        setTimeout(() => {
            context.commit('increment', value);
        }, 500);
    },
};

// 创建mutations，用于操作数据（state）
const mutations = {
    increment(state, value) {
        state.sum += value;
    },
    decrement(state, value) {
        state.sum -= value;
    },
    addPerson(state, value) {
        state.people.push(value);
    },
};

// 创建state，用于存储数据
const state = {
    sum: 0,
    school:"ABC",
    subject:'math',
    people:[
        {id:'0001',name:'张三'}
    ]
};

// 用于加工state中的数据
const getters = {
    bigSum(state){
        return state.sum * 10;
    }
};

// 创建并暴露store
export default new Vuex.Store({
    actions,
    mutations,
    state,
    getters
});